﻿Public Class KakeOppskrift
    Public Property id As ULong
    Public Property navn As String
    Public Property beskrivelse As String




    Public Sub New() ' defaul konstruktør

    End Sub

    Private Function SetIngrediensOgMengde() As Boolean
        Return True
    End Function

    Public Function FinnIngrediensOgAntall() As Dictionary(Of UInteger, UInteger)
        Dim IngredOgAnt As New Dictionary(Of UInteger, UInteger)
        Dim søkestreng As String = "SELECT ingrediensId, antall  FROM kakeoppskriftingrediens WHERE kakeId = " & id & ""

        Dim dt As New DataTable
        dt = Database.Query(søkestreng)

        Dim row As DataRow
        For Each row In dt.Rows

            IngredOgAnt.Add(row("ingrediensId"), row("antall"))

        Next row

        Return IngredOgAnt

    End Function

    Public Shared Function AddOppskrift(ByVal kNavn, ByVal kakeBeskrivelse) As Integer

        Dim søkestreng As String = "INSERT INTO kakeoppskrift (kakeNavn,kakeBeskrivelse)  VALUES ('" & kNavn & "','" & kakeBeskrivelse & "')"
        Dim dt As New DataTable
        dt = Database.Query(søkestreng)

        Dim PK As Integer = 0

        søkestreng = "Select MAX(kakeId) AS MAX FROM kakeoppskrift" 'henter siste PK som skal inngå i sammensatt nøkkel i koblingstabell
        dt = Database.Query(søkestreng)

        Dim row As DataRow
        For Each row In dt.Rows
            PK = row(0)
        Next

        Return PK

    End Function


    Public Shared Function FinnByNavn(ByVal kNavn) As KakeOppskrift

        Dim kakeOppskrifter As New List(Of KakeOppskrift)
        kakeOppskrifter = KakeOppskrift.FinnAlle()
        Dim enKake As New KakeOppskrift
        For Each k In kakeOppskrifter
            If k.navn = kNavn Then
                enKake = k
            End If

        Next
        'returnerer ett bestemt kakeOppskrift objekt
        Return enKake

    End Function

    Public Shared Function FinnById(ByVal kId) As KakeOppskrift

        Dim kakeOppskrifter As New List(Of KakeOppskrift)
        kakeOppskrifter = KakeOppskrift.FinnAlle()
        Dim enKake As New KakeOppskrift
        For Each k In kakeOppskrifter
            If k.id = kId Then
                enKake = k
            End If

        Next
        'returnerer ett bestemt kakeOppskrift objekt
        Return enKake

    End Function

    Public Shared Function FinnAlle() As List(Of KakeOppskrift)

        Dim søkestreng As String = "SELECT * FROM kakeoppskrift"
        Dim oppskriftTabell As New DataTable
        oppskriftTabell = Database.Query(søkestreng)
        Dim kakeoppskrifter As New List(Of KakeOppskrift)

        Dim row As DataRow
        For Each row In oppskriftTabell.Rows
            Dim enKakeoppskrift As New KakeOppskrift
            enKakeoppskrift.id = row("kakeId")
            enKakeoppskrift.navn = row("kakeNavn")
            enKakeoppskrift.beskrivelse = row("kakeBeskrivelse")



            kakeoppskrifter.Add(enKakeoppskrift)

        Next row
        'returnerer en liste med alle kakeoppskrift objektene fra databasen
        Return kakeoppskrifter

    End Function
End Class
